package com.zjuh.qss.biz.dao.ibatis;

import java.util.List;

import com.zjuh.qss.biz.dao.query.SimilarTagQuery;
import com.zjuh.qss.biz.dao.similar.SimilarTagDAO;
import com.zjuh.qss.biz.domain.similar.SimilarTagDO;

public class SimilarTagDAOIbaits extends BaseIbatisDAO implements SimilarTagDAO {
	
	public long create(SimilarTagDO similarTag) {
		return (Long)this.getSqlMapClientTemplate().insert("SimilarTagDAO.create", similarTag);
	}

	public void delete(long id) {
		this.getSqlMapClientTemplate().update("SimilarTagDAO.delete", id);
	}

	public void update(SimilarTagDO similarTag) {
		this.getSqlMapClientTemplate().update("SimilarTagDAO.update", similarTag);
	}

	public SimilarTagDO queryById(long id) {
		return (SimilarTagDO)this.getSqlMapClientTemplate().queryForObject("SimilarTagDAO.queryById", id);
	}

	@SuppressWarnings("unchecked")
	public List<SimilarTagDO> queryForQuery(SimilarTagQuery tagQuery) {
		return (List<SimilarTagDO>)this.getSqlMapClientTemplate().queryForList("SimilarTagDAO.queryForQuery", tagQuery);
	}

	@Override
	public boolean createIfNotExist(SimilarTagDO similarTag) {
		if (null == this.getSqlMapClientTemplate().queryForObject("SimilarTagDAO.existByName", similarTag.getName())) {
			create(similarTag);
			return true;
		}
		getSqlMapClientTemplate().update("SimilarTagDAO.updateTextByName", similarTag);
		return false;
	}



}
